Digital data communications systems are commonly used to transmit and/or receive data between remote transmitting and receiving locations. A central facet of any data communications system is the reliability and integrity of the data which is being communicated. Ideally, the data which is being transmitted from the transmitting location should be identical to the data which is being received at the receiving location. Practically however, the data which is received at the receiving location has oftentimes been corrupted with respect to the original data that was transmitted from the transmitting location. Such data communication errors may be attributed in part to one or more of the transmission equipment, the transmission medium or the receiving equipment. With respect to the transmission medium, these types of data errors are usually attributed to the less than ideal conditions associated with the particular transmission medium.
For example, in the case of wireless communication systems, the transmission medium, which is typically air, often suffers from atmospheric and other effects that tend to degrade the data being transmitted. Some of these non ideal conditions may be modelled and taken into account in order to compensate for and thereby reduce or possibly eliminate any deleterious effects resulting therefrom. In this respect, it is generally known that signal attenuation is a function of the distance that the data signal must propagate through the atmosphere. Thus, it is possible to design a wireless communications system which is capable of transmitting a data signal sufficiently robust such that in spite of known distance-dependent atmospheric attenuation, the data signals at the receiving location can be properly and accurately received. Other types of non-idealities associated with an air or atmospheric transmission medium are often highly random events which may not be modelled a priori and thus may not be compensated for or eliminated.
The transmission of data over interconnecting wires also suffers from several noise and attenuation phenomena. Specifically, when an AC power line is used as the transmission medium, this type of system generally exhibits unpredictable transmission characteristics such as extreme attenuation at certain frequencies, phase changes along the transmission route, and notches and discontinuities. This type of system is described in U.S. Pat. No. 4,815,106, the contents of which are incorporated by reference herein. Generally, there are three modes of noise most common: Gaussian noise, low voltage impulsive interference, and very high voltage spikes. Of these three, the low voltage impulsive interference tends to be the predominant source of data transmission errors, i.e., data transmission may be reliably accomplished even in the presence of Gaussian noise. As for high voltage spikes, they are relatively infrequent and invariably cause data errors, with error detection/retransmission (ACK/NACK) being commonly recognized as the best method of recovering the lost information. Furthermore, these characteristics may vary significantly as load conditions on the line vary, e.g., a variety of other loads being added or removed from the current-carrying line. Such loads include industrial machines, the various electrical motors of numerous appliances, light dimmer circuits, heaters and battery chargers.
To overcome these problems, data communications systems often rely on error detection and error correction schemes, to detect the occurrence of a data error and to correct a data error, respectively. One simple form of error detection is the use of a parity bit associated with each block of data to indicate whether the particular block contains an odd or even number of 1 bits. However, this is a very simple scheme which has numerous disadvantages. It is a simple type of error detection scheme which is capable of accurately detecting up to one bit error per data block. Moreover, the use of a parity bit cannot detect the occurrence of two bit errors in a data block, since this is not even detected as a parity violation. Additionally, the use of a parity bit only detects errors; it cannot correct errors. Any time that an error is detected, the receiving location typically requests retransmission of the particular data block from the transmitting location.
One type of error correction scheme commonly used in data communications systems is the use of redundant data transmissions and a voting circuit at the receiving location. In such a system, the data being transmitted is repeated a number of times, such as five. At the receiving location, all five data blocks are received and processed by a voting circuit which compares the five received versions of each data bit and determines the bit to be a 1 or 0 based on the voting consensus. Although such a system is capable of detecting and correcting data errors, it does so at a great cost in terms of the effective data throughput or transmission rate. This is due to the fact that each data block must be repeated a number of times.
Different types of data transmission formats are susceptible to different types of attenuation and distortion. Narrowband transmission formats such as frequency shift keying (FSK) or amplitude shift keying (ASK) are somewhat immune to frequency dependent attenuation, and thus may suffer little or no distortion. However, the entire band of the narrowband signal may fall into an attenuation null and be severely attenuated. Wideband transmission formats such as spread spectrum are less susceptible to the signal degradation caused by a narrowband attenuation null. However, due to the wider bandwidth associated with a spread spectrum signal, the spread spectrum signal experiences more distortion due to frequency dependent attenuation. Thus, a conventional narrowband signalling format is susceptible to attenuation while a conventional wideband signalling format is susceptible to distortion.
In addition to data integrity, communications systems must provide for synchronization between the transmitting and receiving locations. This is extremely important in order to maintain proper bit timing at the receiving location. In synchronous systems, a separate bit clock signal is included to indicate the start and end of each bit period. In asynchronous systems, a synchronization preamble having a number of bits is included at the beginning of each data block or frame in order for the receiver to lock onto and synchronize with the bit timing of the transmitter before the transmission and reception of the actual data bits.
In a conventional serial synchronization system used with phase shift keying (PSK) signalling, the receiver samples the first bit of the synchronization preamble at an arbitrary point and then correlates the sampled bit with a reference sinusoidal signal. If the arbitrarily chosen sampling point is correct, then there will be maximum correlation between the sampled bit and the reference sinusoidal signal over a portion of the bit period, i.e., bit boundaries have been correctly identified and received bits are being sampled at the proper point in time. If the correlation is less than an acceptable level, the sampling point is time shifted by a fraction of a bit period and the process repeated again. This process is repeated until the optimal bit sampling point has been determined. Serially synchronizing systems may utilize a data format with at least two carrier periods or cycles per bit interval in order to insure proper synchronization. This is due to the fact that when there is distortion in PSK signalling, in addition to the phase changes in the received data stream, the fixed sampling interval used by the receiver may not necessarily be optimally located to sample both a 1 bit and a 0 bit. The sampling interval typically spans at least an entire carrier period. Since conventional synchronization systems are not precise enough to begin sampling at the beginning of the carrier period, and instead start at a fractional point of the carrier period, two or more full carrier periods per bit are required in order to insure a sampling interval of at least one carrier period. Thus, since the sampling interval is at least an entire carrier period, and the beginning of the sampling interval may not be at the beginning of the carrier period, at least two full carrier periods are needed per bit of information. Although this approach results in improved synchronization and sampling, there is a great disadvantage in that the effective data throughput is reduced by, for example, a factor of two (two carrier periods per bit). Another major disadvantage of this type of synchronization circuit is that a long period of time, i.e., a long sequence or synchronization preamble, is required in order to achieve proper synchronization. Furthermore, since the synchronization process spans a long period of time, it itself is susceptible to time-varying noise which may affect the accuracy of the synchronization procedure.